package com.ymm.platform.api.facade;

import com.github.pagehelper.PageInfo;
import com.ymm.platform.api.constants.dto.DriverShowDTO;
import com.ymm.platform.api.constants.dto.OrderShowDTO;
import com.ymm.platform.api.constants.dto.QueryDriverDTO;
import com.ymm.platform.api.constants.entity.DriverEntity;
import com.ymm.platform.api.utils.Result;

import java.util.List;

/**
 * @Description: 司机查询服务
 * @Author: Xuecheng Li
 * @CreateTime: 2022-08-03  12:13
 * @Version: 1.0
 */
public interface PlatformQueryDriverService {


    /**
    * @Author: chencong
    * @Description: 分页查询所有司机
    * @DateTime: 17:26 2022/8/12
    * @Params: [pageNum]
    * @Return com.ymm.platform.api.utils.Result<java.util.List<com.ymm.platform.api.constants.entity.DriverEntity>>
    */
        Result<PageInfo> queryAllDriver(Integer pageNum, Integer pageSize);
    
    /**
    * @Author: chencong
    * @Description: 条件分页查询司机
    * @DateTime: 17:29 2022/8/12
    * @Params: [PageNum, queryDriverDTO]
    * @Return com.ymm.platform.api.utils.Result<java.util.List<com.ymm.platform.api.constants.entity.DriverEntity>>
    */
    Result<PageInfo> queryDriverOnCondition(Integer pageNum,Integer pageSize,QueryDriverDTO queryDriverDTO);

    /**
     * @Author: chencong
     * @Description: 分页查询有效司机
     * @DateTime: 17:29 2022/8/12
     * @Params: [PageNum, queryDriverDTO]
     * @Return com.ymm.platform.api.utils.Result<java.util.List<com.ymm.platform.api.constants.entity.DriverEntity>>
     */
    Result<PageInfo> queryDriverOnValid(Integer pageNum,Integer pageSize);
    
    /**
    * @Author: chencong
    * @Description: 查看司机完成订单总数
    * @DateTime: 17:34 2022/8/12
    * @Params: [PageNum, driverId]
    * @Return com.ymm.platform.api.utils.Result<java.lang.Long>
    */
    Result<Long> queryDriverCompleteOrder(Long driverId);

    /**
    * @Author: chencong
    * @Description: 分页查看司机完成接单列表
    * @DateTime: 17:34 2022/8/12
    * @Params: [PageNum, driverId]
    * @Return com.ymm.platform.api.utils.Result<java.lang.Long>
    */
    Result<PageInfo> queryDriverCompleteOrderList(Integer pageNum,Integer pageSize, Long driverId);

    /**
    * @Author: chencong
    * @Description: 查看司机取消订单总数
    * @DateTime: 17:40 2022/8/12
    * @Params: [PageNum, driverId]
    * @Return com.ymm.platform.api.utils.Result<java.lang.Long>
    */
    Result<Long> queryDriverUncompleteOrder(Long driverId);

    /**
    * @Author: chencong
    * @Description: 分页查看司机取消订单总数
    * @DateTime: 17:44 2022/8/12
    * @Params: [PageNum, driverId]
    * @Return com.ymm.platform.api.utils.Result<java.util.List<com.ymm.platform.api.constants.dto.OrderShowDTO>>
    */
    Result<PageInfo> queryDriverUncompleteOrderList(Integer pageNum,Integer pageSize, Long driverId);

    /**
    * @Author: chencong
    * @Description: 计算司机总收入
    * @DateTime: 17:45 2022/8/12
    * @Params:
    * @Return
    */
    Result<Integer> queryDriverTotalIncome(Long driverId);

    Result<PageInfo> queryDriverListByName(Integer pageNum, Integer pageSize,String driverName);

    Result<PageInfo> queryDriverListByPhone(Integer pageNum, Integer pageSize,String driverPhoneNum);
}
